<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

namespace common\logics\trade\scope;

/**
 * 业务订单模型接口
 * 
 * @author emhome
 * @since 2.0
 */
interface CompatibleScopeInterface {

    /**
     * 业务订单是否过期
     * @return bool
     */
    public function getIsExpired();

    /**
     * 设置业务订单正在支付信息
     */
    public function setPaying();

    /**
     * 设置业务订单正在支付信息
     */
    public function getUserId();

    /**
     * 获取业务订单回调显示的订单ID
     * @return integer
     */
    public function getViewOrderId();

    /**
     * 获取业务订单订单号
     * @return string
     */
    public function getOrderNo();

    /**
     * 获取业务订单交易需付款总金额
     * @return integer|float
     */
    public function getTradeAmount();

    /**
     * 获取业务订单交易标题
     * @return string
     */
    public function getTradeTitle();

    /**
     * 获取业务订单交易描述
     * @return string
     */
    public function getTradeDescription();

    /**
     * 获取业务订单交易过期倒计时（秒）
     * @return integer
     */
    public function getCountdown();

    /**
     * 获取业务订单最多可用积分抵扣数量
     * @return integer
     */
    public function getMaxAllowCredit();

    /**
     * 通过订单号获取业务订单模型信息
     * @param string $bizno 业务订单订单号
     * @return static|null
     */
    public static function findByBizno($bizno);
}
